// demo1_bunny.h

#ifndef DEMO1_BUNNY_H
#define DEMO1_BUNNY_H

#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "semphr.h"

#include "xil_printf.h"
#include "xstatus.h"

#include "vdma_display.h"
#include "smrs.h"

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#include "linalg.h"         // 自定义的线性代数库
#include "bun_zipper_res4_data.h" // 斯坦福兔子模型数据

// --- 全局存储渲染三角形数据，避免任务栈溢出 ---
// 这个数组用于存储当前帧要渲染的所有三角形，从任务栈移至全局静态内存。
// 在 demo1_bunny.c 中定义，在 demo1_bunny.h 中声明为 extern
extern SmrsTriangle render_triangles_global[BUNNY_NUM_TRIANGLES];

// 动画变量，在 demo1_bunny.c 中定义，在 demo1_bunny.h 中声明为 extern
extern float rotation_angle_y;
extern float camera_orbit_angle;

// --- GPU 渲染任务函数原型 ---
void vGpuRenderTask( void *pvParameters );

#endif // DEMO1_BUNNY_H
